home *** CD-ROM | disk | FTP | other *** search
- unit Unit1;
- {.$R+}
- interface
- uses
- Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
- ExtCtrls, StdCtrls, ComCtrls, Buttons, DrBobNEW, Grids;
-
- type
- TFormNews = class(TForm)
- ToolBar: TPanel;
- StatusBar: TStatusBar;
- MemoStatus: TMemo;
- ListBoxNewsGroups: TListBox;
- Splitter: TSplitter;
- MemoArticle: TMemo;
- BtnConnect: TSpeedButton;
- BtnDisconnect: TSpeedButton;
- BtnJoin: TSpeedButton;
- BNNTP: TBNNTP;
- StringGridArticles: TStringGrid;
- procedure BtnConnectClick(Sender: TObject);
- procedure BtnDisconnectClick(Sender: TObject);
- procedure BtnJoinClick(Sender: TObject);
- procedure FormCreate(Sender: TObject);
- procedure StringGridArticlesClick(Sender: TObject);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
-
- var
- FormNews: TFormNews;
-
- implementation
- {$R *.DFM}
-
- procedure TFormNews.FormCreate(Sender: TObject);
- begin
- BNNTP.NewsServer := 'news.shoresoft.com';
- with StringGridArticles do
- begin
- ColWidths[0] := 42;
- ColWidths[1] := 156;
- ColWidths[2] := 200;
- ColWidths[3] := 200;
- Cells[0,0] := 'Nr.';
- Cells[1,0] := 'From:';
- Cells[2,0] := 'Subject:';
- Cells[3,0] := 'Date:'
- end
- end;
-
- procedure TFormNews.BtnConnectClick(Sender: TObject);
- var
- i: Integer;
- begin
- BtnConnect.Enabled := False;
- BNNTP.StatusMemo := MemoStatus;
- MemoStatus.Lines.Add('BNNTP.Connect; { before }');
- BNNTP.Connect;
- MemoStatus.Lines.Add('BNNTP.Connect; { after }');
- ListBoxNewsGroups.Items.Clear;
- for i:=0 to Pred(BNNTP.NewsGroups) do
- ListBoxNewsGroups.Items.Add(BNNTP.NewsGroup[i]);
- BtnDisconnect.Enabled := True;
- BtnJoin.Enabled := ListBoxNewsGroups.Items.Count > 0;
- end;
-
- procedure TFormNews.BtnDisconnectClick(Sender: TObject);
- var
- i: Integer;
- begin
- ListBoxNewsGroups.Items.Clear;
- for i:=1 to Pred(StringGridArticles.RowCount) do
- begin
- StringGridArticles.Cells[0,i] := '';
- StringGridArticles.Cells[1,i] := '';
- StringGridArticles.Cells[2,i] := '';
- StringGridArticles.Cells[3,i] := '';
- end;
- MemoArticle.Clear;
- BNNTP.Disconnect;
- BtnConnect.Enabled := True;
- BtnDisconnect.Enabled := False;
- BtnJoin.Enabled := False;
- end;
-
- procedure TFormNews.BtnJoinClick(Sender: TObject);
- var
- i,j: Integer;
- Article: String;
- begin
- if ListBoxNewsGroups.ItemIndex >= 0 then
- BNNTP.JoinNewsGroup(ListBoxNewsGroups.Items[ListBoxNewsGroups.ItemIndex]);
- for i:=1 to Pred(StringGridArticles.RowCount) do
- begin
- StringGridArticles.Cells[0,i] := '';
- StringGridArticles.Cells[1,i] := '';
- StringGridArticles.Cells[2,i] := '';
- StringGridArticles.Cells[3,i] := '';
- end;
- for i:=BNNTP.FirstArticle to BNNTP.LastArticle do
- begin
- BNNTP.ReadArticle(i);
- StringGridArticles.Cells[0,i-BNNTP.FirstArticle+1] := IntToStr(i);
- Article := BNNTP.Article[i];
- j := Pos('From: ',Article);
- Delete(Article,1,j+5);
- j := Pos(#13,Article);
- StringGridArticles.Cells[1,i-BNNTP.FirstArticle+1] := Copy(Article,1,j-1);
- Article := BNNTP.Article[i];
- j := Pos('Subject: ',Article);
- Delete(Article,1,j+8);
- j := Pos(#13,Article);
- StringGridArticles.Cells[2,i-BNNTP.FirstArticle+1] := Copy(Article,1,j-1);
- Article := BNNTP.Article[i];
- j := Pos('Date: ',Article);
- Delete(Article,1,j+5);
- j := Pos(#13,Article);
- StringGridArticles.Cells[3,i-BNNTP.FirstArticle+1] := Copy(Article,1,j-1);
- end;
- StringGridArticles.Row := 1;
- StringGridArticlesClick(Sender)
- end;
-
- procedure TFormNews.StringGridArticlesClick(Sender: TObject);
- begin
- MemoArticle.Text := BNNTP.Article[StringGridArticles.Row+BNNTP.FirstArticle-1]
- end;
-
- end.
-
-